package dev.curso.android.httpclient;

import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;

import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
import org.json.JSONException;
import org.json.JSONObject;

import dev.curso.android.bussiness.ItemPedido;

import android.util.Log;
import android.widget.Toast;

public class FuncionesUsuario {
	JsonParser parser;
	static String URL = "http://192.168.1.111:8080/shopping_server/";

	static String login_tag = "login";
	static String register_tag = "register";
	
	public FuncionesUsuario(){
		parser = new JsonParser();
	}
	
	public JSONObject autentificacion(String email, String password){
		List<NameValuePair> parametros = new ArrayList<NameValuePair>();
		parametros.add(new BasicNameValuePair("tag", login_tag));
		parametros.add(new BasicNameValuePair("login", email));
		parametros.add(new BasicNameValuePair("password", password));
		JSONObject json = parser.obtenerJSONdeURL(URL, parametros);
		
		return json;
	}
	
	public void crearPedido(){
		List<NameValuePair> parametros = new ArrayList<NameValuePair>();
		parametros.add(new BasicNameValuePair("tag", "agregarPedido"));
		parametros.add(new BasicNameValuePair("login", String.valueOf(3)));
		JSONObject json = parser.obtenerJSONdeURL(URL, parametros);
	}
	
	public void agregarProductoPedido(){
		List<NameValuePair> param = new ArrayList<NameValuePair>();
		param.add(new BasicNameValuePair("tag", "agregarProductoPedido"));
		param.add(new BasicNameValuePair("pedido", String.valueOf(6)));
		param.add(new BasicNameValuePair("producto", String.valueOf(1)));
		param.add(new BasicNameValuePair("cantidad", "4"));
		JSONObject json = parser.obtenerJSONdeURL(URL, param);
	}
	
	public void eliminarPedido(){
		List<NameValuePair> parametros = new ArrayList<NameValuePair>();
		parametros.add(new BasicNameValuePair("tag", "eliminarPedido"));
		parametros.add(new BasicNameValuePair("idPedido", String.valueOf(6)));
		JSONObject json = parser.obtenerJSONdeURL(URL, parametros);
	}
	
	public void obtenerListaProductoTipo(){
		List<NameValuePair> parametros = new ArrayList<NameValuePair>();
		parametros.add(new BasicNameValuePair("tag", "obtenerListaProductoTipo"));
		parametros.add(new BasicNameValuePair("tipo", "Nuevo"));
		JSONObject json = parser.obtenerJSONdeURL(URL, parametros);
		int length = json.length();
		for(int i = 3; i<length; i++)
			try {
				JSONObject obj = json.getJSONObject("0");
				String str = obj.getString("nombre");
				Log.d("prueba", str);
			} catch (JSONException e) {
				e.printStackTrace();
			}
	}
	
	public JSONObject registrarUsuario(String nombre, String email, String password){
		List<NameValuePair> parametros = new ArrayList<NameValuePair>();
		parametros.add(new BasicNameValuePair("tag", register_tag));
		parametros.add(new BasicNameValuePair("name", nombre));
		parametros.add(new BasicNameValuePair("email", email));
		parametros.add(new BasicNameValuePair("password", password));
		
		JSONObject json = parser.obtenerJSONdeURL(URL, parametros);
		
		return json;
	}
	
	public List<ItemPedido> obtenerListaPedidos(String estado){
		List<ItemPedido> lista = new LinkedList<ItemPedido>();
		
		List<NameValuePair> parametros = new ArrayList<NameValuePair>();
		parametros.add(new BasicNameValuePair("tag", "obtenerListaPedido"));
		parametros.add(new BasicNameValuePair("estado", estado));
		JSONObject json = parser.obtenerJSONdeURL(URL, parametros);
		int length = json.length() - 3;
		Log.d("pedidos",json.toString());
		for(int i = 0; i<length; i++)
			try {
				JSONObject obj = json.getJSONObject(String.valueOf(i));
				ItemPedido objPedido = new ItemPedido();
				
				String str = obj.getString("id");
				objPedido.setId(Integer.parseInt(str));
				
				str = obj.getString("fecha");
				objPedido.setFecha(str);
				
				str = obj.getString("monto");
				objPedido.setMonto(Double.parseDouble(str));
				
				lista.add(objPedido);
				
				Log.d("prueba", str);
			} catch (JSONException e) {
				e.printStackTrace();
			}
		
		return lista;
	}
}
